﻿#pragma warning disable 649    // disable compiler warnings about unassigned fields

namespace HelfenHelfen.RIA.Web.Models
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies DemandMetadata as the class
    // that carries additional metadata for the Demand class.
    [MetadataTypeAttribute(typeof(Demand.DemandMetadata))]
    public partial class Demand
    {

        // This class allows you to attach custom attributes to properties
        // of the Demand class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class DemandMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DemandMetadata()
            {
            }

            public string City { get; set; }

            public Guid ContactPersonUserDetailGUID { get; set; }

            public string CountryCode { get; set; }

            public DemandCategory DemandCategory { get; set; }

            public Guid DemandCategoryGUID { get; set; }

            public EntityCollection<DemandDetail> DemandDetails { get; set; }

            public Guid DemandGUID { get; set; }

            public string Description { get; set; }

            public DateTime EndDateTime { get; set; }

            public EntityCollection<Image> Images { get; set; }

            public Organisation Organisation { get; set; }

            public Guid OrganisationGUID { get; set; }

            [RegularExpression("[0-9]{4}", ErrorMessage="Bitte geben Sie eine gültige österreichische PLZ an!")]
            public string PostalCode { get; set; }

            public DateTime StartDateTime { get; set; }

            public string Street { get; set; }

            [Required(ErrorMessage="Bitte geben Sie einen Titel an!")]
            public string Title { get; set; }

            public UserDetail UserDetail { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DemandCategoryMetadata as the class
    // that carries additional metadata for the DemandCategory class.
    [MetadataTypeAttribute(typeof(DemandCategory.DemandCategoryMetadata))]
    public partial class DemandCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the DemandCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class DemandCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DemandCategoryMetadata()
            {
            }

            public Guid DemandCategoryGUID { get; set; }

            public EntityCollection<Demand> Demands { get; set; }

            public string Name { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DemandDetailMetadata as the class
    // that carries additional metadata for the DemandDetail class.
    [MetadataTypeAttribute(typeof(DemandDetail.DemandDetailMetadata))]
    public partial class DemandDetail
    {

        // This class allows you to attach custom attributes to properties
        // of the DemandDetail class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class DemandDetailMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DemandDetailMetadata()
            {
            }

            public int BonusPointsPerPerson { get; set; }

            public Demand Demand { get; set; }

            public Guid DemandDetailsGUID { get; set; }

            public Guid DemandGUID { get; set; }

            public DateTime EndDateTime { get; set; }

            public EntityCollection<Mission> Missions { get; set; }

            public int NoOfHelpersNeeded { get; set; }

            public string Notes { get; set; }

            public string QualificationsNeeded { get; set; }

            public DateTime StartDateTime { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies OrganisationMetadata as the class
    // that carries additional metadata for the Organisation class.
    [MetadataTypeAttribute(typeof(Organisation.OrganisationMetadata))]
    public partial class Organisation
    {

        // This class allows you to attach custom attributes to properties
        // of the Organisation class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class OrganisationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private OrganisationMetadata()
            {
            }

            public EntityCollection<BonusItem> BonusItems { get; set; }

            public string City { get; set; }

            public string CountryCode { get; set; }

            public EntityCollection<Demand> Demands { get; set; }

            public string Description { get; set; }

            public EntityCollection<Message> Messages { get; set; }

            public string Name { get; set; }

            public Guid OrganisationGUID { get; set; }

            public string PostalCode { get; set; }

            public string Street { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserDetailMetadata as the class
    // that carries additional metadata for the UserDetail class.
    [MetadataTypeAttribute(typeof(UserDetail.UserDetailMetadata))]
    public partial class UserDetail
    {

        // This class allows you to attach custom attributes to properties
        // of the UserDetail class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class UserDetailMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserDetailMetadata()
            {
            }

            public EntityCollection<BonusAccount> BonusAccounts { get; set; }

            public string City { get; set; }

            public string CountryCode { get; set; }

            public EntityCollection<Demand> Demands { get; set; }

            public string EMail { get; set; }

            public string FirstName { get; set; }

            public EntityCollection<Image> Images { get; set; }

            public string Lastname { get; set; }

            public EntityCollection<Message> Messages { get; set; }

            public EntityCollection<Message> Messages1 { get; set; }

            public EntityCollection<Mission> Missions { get; set; }

            public string PhoneNo { get; set; }

            public byte[] Picture { get; set; }

            public string PostalCode { get; set; }

            public string Street { get; set; }

            public Guid UserDetailGUID { get; set; }

            public string Username { get; set; }
        }
    }
}

#pragma warning restore 649    // re-enable compiler warnings about unassigned fields
